#define _CRT_SECURE_NO_WARNINGS 1

#include <stdio.h>
#include <string.h>
#include <stdlib.h>
//int fufu1(const void* p1, const void* p2)
//{
//	return *(int*)p1 - *(int*)p2;
//}
//void fufu2(char* p1, char* p2, size_t n)
//{
//	int tmp = 0;
//	int i = 0;
//	for (i = 0; i < n; i++)
//	{
//		tmp = *p1;
//		*p1 = *p2;
//		*p2 = tmp;
//		p1++;
//		p2++;
//	}
//		
//}
//Print(int* arr, int sz)
//{
//	int i = 0;
//	for (i = 0; i < sz; i++)
//	{
//		printf("%d ", arr[i]);
//	}
//}
//void fufu(void* arr, size_t sz, size_t n,int (*pa)(const void* p1, const void* p2))
//{
//	int i = 0;
//	for (i = 0; i < sz - 1; i++)
//	{
//		int j = 0;
//		for (j = 0; j < sz - 1 - i; j++)
//		{
//			if ((pa)((char*)arr + j * n, (char*)arr + (j + 1) * n)>0)
//			{
//				fufu2((char*)arr + j * n, (char*)arr + (j + 1) * n, n);
//			}
//		}
//	}
//}
//void test()
//{
//	int arr[] = { 8,9,5,4,6,2,1,3,0,7 };
//	int sz = sizeof(arr) / sizeof(arr[0]);
//	fufu(arr, sz, sizeof(arr[0]), fufu1);
//	Print(arr, sz);
//}
//int main()
//{
//	test();
//	return 0;
//}



//struct Stu
//{
//	char name[20];
//	int age;
//};
//
//int fufu1(const void* p1, const void* p2)
//{
//	return ((struct Stu*)p1)->age - ((struct Stu*)p2)-> age;
//}
//int fufu4(const void* p1, const void* p2)
//{
//	return strcmp(((struct Stu*)p1)->name, ((struct Stu*)p2)->name);
//}
//void fufu2(char* p1, char* p2, size_t n)
//{
//	int i = 0;
//	for (i = 0; i < n; i++)
//	{
//		char tmp = *p1;
//		*p1 = *p2;
//		*p2 = tmp;
//		p1++;
//		p2++;
//	}
//}
//void fufu(void* arr, size_t sz, size_t n, int (*PaArr)(const void* p1, const void* p2))
//{
//	int i = 0;
//	for (i = 0; i < sz - 1; i++)
//	{
//		int j = 0;
//		for (j = 0; j < sz - 1 - i; j++)
//		{
//			if ((PaArr)((char*)arr + j * n, (char*)arr + (j + 1) * n)>0)
//			{
//				fufu2((char*)arr + j * n, (char*)arr + (j + 1) * n, n);
//			}
//
//		}
//	}
//}
//void test()
//{
//	struct Stu arr[] = { {"zhangsan",20},{"lisi",18},{"wangwu",38} };
//	int sz = sizeof(arr) / sizeof(arr[0]);
//	fufu(arr, sz, sizeof(arr[0]), fufu1);
//int i = 0;
//	for (i = 0; i < sz; i++)
//	{
//		printf("%s %d\n", arr[i].name, arr[i].age);
//	}
//}
//int main()
//{
//	test();
//	return 0;
//}

//int fufu(char* arr)
//{
//	int n = 0;
//	while (*arr != 0)
//	{
//		n++;
//		arr++;
//	}
//	return n;
//}
//int main()
//{
//	char arr[] = "abcddasdsadsaddsadsadsadaddddddddddddddddddddddddddd";
//	int ret = fufu(arr);
//	printf("%d ", ret);
//	return 0;
//}

//fufu(int n)
//{
//	if (n <= 2)
//	{
//		return 1;
//	}
//	return fufu(n - 1) + fufu(n - 2);
//}
//int main()
//{
//	int n = 0;
//	scanf("%d", &n);
//	int ret = fufu(n);
//	printf("%d ", ret);
//	return 0;
//}
//int fufu(int n)
//{
//	int a = 1;
//	int b = 1;
//	int c = 1;
//	while (n >= 3)
//	{
//		c = a + b;
//		a = b;
//		b = c;
//		n--;
//	}
//	return c;
//}
//int main()
//{
//	int n = 0;
//		scanf("%d", &n);
//		int ret = fufu(n);
//		printf("%d ", ret);
//	return 0;
//}